// 安全检查javascript基本数据类型和内置对象
// 参数：o表示检测的值
// 返回值：返回字符串"undefined","number","null"
// "boolean","string","function","regexp","array",
// 'date',"error","object"
function typeOf(o){
	var _toString = Object.prototype.toString;
	// 获取对象的toSting()方法引用
	// 列举基本数据类型和内置对象类型，可以
	var _type = {
		"undefined": "undefined",
		"number": 'number',
		"boolean": 'boolean',
		"string": 'string',
		"[object Function]": 'function',
		"[object RegExp]": "regexp",
		"[object Array]": 'array',
		"[object Date]": 'date',
		"[object Error]": 'error'
	}

	return _type[typeof o] || _type[_toString.call(o)] || (o?"object":"null");
}